/**
 * \file
 * \date 18.09.2013
 * \author alex
 */
#ifndef bullet_rviz_test_ROBOT_VISUALIZATION_H_
#define bullet_rviz_test_ROBOT_VISUALIZATION_H_

#include <boost/shared_ptr.hpp>
#include <bullet_rviz_test/visual_object.h>

namespace bullet_rviz_test
{

class Robot;
typedef boost::shared_ptr<Robot> RobotPtr;

class RobotVisualization: public VisualObject
{
public:
  RobotVisualization(const RobotPtr & robot);
  virtual ~RobotVisualization();

  /**
   * Set cost of current position. Currently visualized via color.
   * @param cost cost of current position. Must be in the range [0, 1], where a bigger value stands for a worse situation.
   *             Automatically clamped to [0, 1].
   */
  void setCost(float cost);

  virtual void visualize();

private:
  RobotVisualization(const RobotVisualization &);
  RobotVisualization & operator=(const RobotVisualization &);

  RobotPtr robot_;
  float cost_;
};

}

#endif /* bullet_rviz_test_ROBOT_VISUALIZATION_H_ */
